import { createStore } from 'vuex'
// import xx from 'vuex-persistedstate'
import { createVuexPersistedState } from 'vue-persistedstate'
import cart from './modules/cart'
import user from './modules/user'
import category from './modules/category'

export default createStore({
  modules: {
    user,
    cart,
    category
  },
  plugins: [
    createVuexPersistedState({
      // 默认存储在loaclstore上
      // 本地存储的名字
      key: 'erabbit-client-pc-store',
      // 指定需要存储的模块
      path: ['user', 'cart']
    })
  ]
})

// vue2.0 创建仓库 new vue.store({})
// vue3.0 createStore({})
// export default createStore({
//   state: {
//     username: 'zs'
//   },
//   getters: {
//     newName: state => state.username + '!!!'
//   },
//   mutations: {
//     updateName (state, payload) {
//       state.username = payload
//     }
//   },
//   actions: {
//     updateName (ctx) {
//       setTimeout(() => {
//         // 拿到数据
//         ctx.commit('updateName', '张三')
//       }, 1000)
//     }
//   },
//   modules: {
//   }
// // })
// // A模块
// const modeleA = {
//   // namespace: true
//   state: {
//     username: 'modeleA'
//   },
//   getters: {
//     newName (state) {
//       return state.username + '!!!'
//     }
//   },
//   mutations: {
//     updateName (state) {
//       state.username = 'modeleAAAA'
//     }
//   }
// }
// // B模块
// const modeleB = {
//   namespaced: true,
//   state: {
//     username: 'modeleB'
//   },
//   getters: {
//     newName (state) {
//       return state.username + '!!!'
//     }
//   },
//   mutations: {
//     updateName (state) {
//       state.username = 'modeleBBBBB'
//     }
//   },
//   actions: {
//     updateName (ctx) {
//       setTimeout(() => {
//         ctx.commit('updateName')
//       }, 1000)
//     }
//   }
// }
